The development of cloud storage and services has allowed users to offload and/or outsource both storage of their data and associated computations on that data. As a result, businesses can choose to forego the expensive proposition of maintaining their own data centers, relying instead on cloud storage and computational services. In addition to storing data in remote servers, computations can be performed in remote servers as well.
Maintaining data confidentiality is an especially important concern for storing data and performing computations on data in remote servers. Encryption schemes represent one form of technology directed towards securing data when stored in memory, when operated on, and/or transmitted over networks.